JasmineJS এ টেস্ট ফলাফল লগিং এবং রিপোর্টিং একটি গুরুত্বপূর্ণ ফিচার যা আপনাকে আপনার টেস্টের কার্যকারিতা সম্পর্কে বিস্তারিত ধারণা দেয়। আপনি যদি বড় বা জটিল প্রজেক্টের জন্য কাজ করেন, তবে টেস্টের ফলাফল সঠিকভাবে রিপোর্ট করা এবং লগ করা অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি ডেভেলপারদের সাহায্য করে কোডের ত্রুটি শনাক্ত করতে এবং প্রয়োজনীয় পরিবর্তন আনতে। JasmineJS এ টেস্ট ফলাফল লগিং এবং রিপোর্টিংয়ের জন্য কিছু built-in ফিচার রয়েছে এবং আপনি কাস্টম রিপোর্টারও তৈরি করতে পারেন।
JasmineJS এর Built-in Reporter
JasmineJS নিজে কিছু সাধারণ রিপোর্টিং সুবিধা দেয়। এগুলোর মধ্যে প্রধান হল কনসোল রিপোর্টার, যা টেস্টের ফলাফল কনসোলে আউটপুট হিসেবে দেখায়। এই রিপোর্টারটি টেস্টের বিভিন্ন পরিসংখ্যান যেমন পাস, ফেল, স্কিপ ইত্যাদি দেখায়।
কনসোল রিপোর্টার
JasmineJS এর ডিফল্ট রিপোর্টার হল Console Reporter, যা কনসোলে সরাসরি টেস্টের ফলাফল প্রদর্শন করে। এর মাধ্যমে আপনি দেখতে পাবেন কতটি টেস্ট পাস, কতটি ফেল করেছে, এবং কোন টেস্টগুলো সম্পন্ন হয়নি।
describe("Sample Test Suite", function() {
it("should be true", function() {
expect(true).toBe(true);
});
it("should fail", function() {
expect(false).toBe(true); // এটি ফেল করবে
});
});
এই কোডটি চালালে কনসোলে নিম্নলিখিত আউটপুট দেখতে পাবেন:
Sample Test Suite
should be true
should fail
2 specs, 1 failure, 0 skipped, 0 of 2 passed, 50% passed
Finished in 0.001 seconds
Custom Reporter তৈরি করা
যদি আপনি JasmineJS এর ডিফল্ট রিপোর্টারের বাইরে কিছু কাস্টম আউটপুট চাওয়ার মতো প্রয়োজনীয়তা অনুভব করেন, তবে আপনি Custom Reporter তৈরি করতে পারেন। JasmineJS আপনাকে এমন একটি Reporter ক্লাস তৈরি করার সুবিধা দেয়, যা আপনি আপনার টেস্ট রান করার সময় ফলাফল কাস্টমাইজ করে প্রদর্শন করতে পারবেন।
Custom Reporter তৈরি করার উদাহরণ
function MyCustomReporter() {
this.reportSpecResults = function(spec) {
// প্রতিটি টেস্ট স্পেসিফিকেশনের ফলাফল কাস্টম আউটপুটে লগ করা হবে
if (spec.results().failedCount > 0) {
console.log(spec.description + " : Failed");
} else {
console.log(spec.description + " : Passed");
}
};
this.reportSuiteResults = function(suite) {
console.log("Test Suite: " + suite.description);
};
}
jasmine.getEnv().addReporter(new MyCustomReporter());
এখানে:
reportSpecResults: প্রতিটি টেস্ট স্পেসিফিকেশনের ফলাফল (পাস বা ফেল) কাস্টম আউটপুট হিসেবে কনসোলে প্রদর্শিত হবে।reportSuiteResults: টেস্ট সুইটের (Test Suite) নাম এবং ফলাফল কাস্টম আউটপুটে প্রদর্শিত হবে।
Custom Reporter আউটপুট:
Test Suite: Sample Test Suite
should be true : Passed
should fail : Failed
JasmineJS এর কাস্টম রিপোর্টার কনফিগারেশন
JasmineJS এ jasmine.getEnv().addReporter() ফাংশন ব্যবহার করে আপনি একটি কাস্টম রিপোর্টার যোগ করতে পারেন। কাস্টম রিপোর্টার তৈরি করার সময় আপনি reportSpecResults(), reportSuiteResults() ইত্যাদি মেথডগুলিকে কাস্টমাইজ করতে পারেন।
কাস্টম রিপোর্টার কনফিগারেশন:
reportSpecResults(): এটি প্রত্যেকটি টেস্ট স্পেসিফিকেশনের ফলাফল পরিচালনা করে। আপনি এখানে পাস/ফেল সম্পর্কে আউটপুট কাস্টমাইজ করতে পারেন।reportSuiteResults(): এটি পুরো টেস্ট সুইটের ফলাফল পরিচালনা করে।reportRunnerResults(): এটি রানার (Test Runner) এর সম্পূর্ণ ফলাফল রিপোর্ট করে।
JasmineJS Reporting ফিচার ব্যবহার করে Test Results Export করা
আপনি যদি টেস্টের ফলাফল ফাইল হিসেবে সংরক্ষণ করতে চান, তবে JasmineJS এর built-in ফিচারগুলির মাধ্যমে আপনি টেস্ট রিপোর্ট ফাইল তৈরি করতে পারেন। সাধারণত, টেস্ট রিপোর্টের জন্য JUnit XML আউটপুট ফরম্যাট ব্যবহৃত হয়, যা CI/CD সিস্টেমে সহজে ইন্টিগ্রেট করা যায়।
JUnit Reporter ব্যবহার করা:
JUnit রিপোর্টিং ব্যবহারের জন্য আপনাকে Jasmine এর JUnitXmlReporter কনফিগার করতে হবে।
const Jasmine = require('jasmine');
const jasmine = new Jasmine();
const JUnitXmlReporter = require('jasmine-reporters').JUnitXmlReporter;
const junitReporter = new JUnitXmlReporter({
savePath: 'test_results/',
filePrefix: 'results',
consolidateAll: false
});
jasmine.addReporter(junitReporter);
jasmine.execute();
এখানে:
- JUnitXmlReporter ব্যবহার করে টেস্ট ফলাফল JUnit XML ফরম্যাটে আউটপুট করা হবে।
savePath: যেখানে রিপোর্ট ফাইলটি সংরক্ষিত হবে।filePrefix: রিপোর্ট ফাইলের নামের প্রিফিক্স।
এটি চালানোর পর test_results/ ফোল্ডারে একটি results-*.xml ফাইল তৈরি হবে, যা CI/CD টুল যেমন Jenkins এর মাধ্যমে বিশ্লেষণ করা যাবে।
সারাংশ
- Test Results Logging: JasmineJS ডিফল্ট কনসোল রিপোর্টার দিয়ে টেস্টের ফলাফল কনসোলে দেখায়, এবং এর মাধ্যমে আপনি পাস, ফেল বা স্কিপ হওয়া টেস্ট দেখতে পারেন।
- Custom Reporter: JasmineJS আপনাকে কাস্টম রিপোর্টার তৈরি করার সুযোগ দেয়, যা আপনার প্রয়োজন অনুযায়ী টেস্ট ফলাফল কাস্টম আউটপুট করতে সহায়তা করে।
- JUnit XML Reporter: JasmineJS এর মাধ্যমে আপনি JUnit XML ফরম্যাটে রিপোর্ট তৈরি করতে পারেন, যা CI/CD টুলগুলির সাথে ইন্টিগ্রেট করা যায়।
JasmineJS এর এই রিপোর্টিং সুবিধাগুলি আপনাকে টেস্ট ফলাফল বিশ্লেষণে সাহায্য করবে এবং বড় প্রজেক্টে টেস্টিং প্রক্রিয়াকে আরও কার্যকরী করবে।
Read more